import Vue from 'vue'
import Vuex from "vuex"

import moduleA from "./module/moduleA"
import getters from "./getters"
import mutations from "./mutations";
import actions from "./actions";

// 1.安装插件
Vue.use(Vuex)

// 2.创建对象
const store = new Vuex.Store({
  // 基本数据 管理状态信息(单一状态树/单一数据源)
  // 这些属性都会加入响应式系统,当属性发生变化时会自动通知页面的属性发生变化
  state: {
    counter: 50,
    students: [
      {id: 101, name: "aa", age: 18},
      {id: 102, name: "bb", age: 20},
      {id: 103, name: "cc", age: 24},
      {id: 104, name: "dd", age: 30}
    ],
    info: {
      name: "123",
      age: 23
    }
  },
  // 类似get方法
  getters,
  // 提交方法 vuex更新state数据唯一方式
  mutations,
  // 用来替代mutations的异步操作
  actions,
  modules: {
    a: moduleA
  }
})

// 3.导出store
export default store
